home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
lineed.zip
/
LINEED2.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-05
|
7KB
|
236 lines
#include "lineed.h"
#ifdef __TURBOC__
#define _fastcall pascal
#endif
#define ORIGMSG "Original msg "
#define VERSION "1.06"
char * pascal stripcr(char *);
void pascal hitreturn(void);
void pascal cls (void);
char pascal inkey (void);
char pascal carrchk (void);
char pascal fossil (char function, char arg);
char pascal printm (char *text);
void cdecl deinitialize (void);
char * pascal genin (char length,char password,char caps,char hot,char type);
long pascal getxbbstime(void);
char pascal specialkey(char);
char pascal specialmod(void);
char * pascal rstrip(char *);
char * pascal lstrip(char *);
int cdecl break_handler(void);
void pascal chat(void);
void pascal rawdir (char *,char);
int pascal checkafile (char *);
char pascal readtext (char *);
int cdecl printfm (char *,...);
int pascal do_args (int argc, char *argv[]);
word pascal enter (word);
void pascal patchup (word,int);
void pascal delete (void);
struct line * pascal dls_store (struct line *);
struct line * pascal find (word);
void pascal search (void);
word pascal list (void);
word pascal save (word,word);
void pascal load (char);
int pascal menu_select (void);
void pascal wrap (char *,char *);
word pascal findlast (void);
void pascal printheader (void);
struct line * pascal newbuffer (void);
void pascal deleteline (word);
void pascal quoter (void);
void pascal edit (word);
void pascal view (char);
void pascal movelines (void);
void pascal status (char);
void pascal quit (char);
void pascal formpara (void);
int aprintf (char *str,...);
extern void _fastcall (*pause_mtask)(void);
extern void pascal set_mtask (void);
extern char noslice;
extern char usebios;
extern char quoting;
extern char chatting;
extern long timelimit;
extern word baud;
extern char pauser;
extern char graphics;
extern char numlines;
extern word lines;
extern long startt;
extern char commport;
extern char chatted;
extern char fname[133];
extern char mode;
extern char username[37];
extern struct ffblk filestat;
extern char uwidth;
struct line {
char text[81];
char terminator[3];
word num;
struct line *next;
struct line *prior;
};
extern struct line * start;
extern struct line * last;
extern char temporary[257];
extern union REGS rg;
extern char ansii[8];
extern char from[36];
extern char to[36];
extern char date[20];
extern char subj[72];
extern char thisto[36];
extern word maxlines;
char pascal specialmod (void) {
char arg;
int register x;
for (x=0;x<1024;x++) {
arg=carrchk();
if (arg & 1) break;
(*pause_mtask)();
}
if (!(arg & 1)) return 0;
arg=(fossil(RECVWAIT,arg));
if (arg!='[') return 0;
for (x=0;x<1024;x++) {
arg=carrchk();
if (arg & 1) break;
(*pause_mtask)();
}
if (!(arg & 1)) return 0;
arg=(fossil(RECVWAIT,arg));
if ((arg!='1') && (arg!='C') && (arg!='D') && (arg!='A') && (arg!='B')) return 0;
if (arg=='C') return 8;
if (arg=='D') return 24;
if (arg=='A') return 20;
if (arg=='B') return 25;
for (x=0;x<1024;x++) {
arg=carrchk();
if (arg & 1) break;
(*pause_mtask)();
}
if (!(arg & 1)) return 0;
arg=(fossil(RECVWAIT,arg));
if ((arg!='C') && (arg!='D') && (arg!='A') && (arg!='B')) return 0;
if (arg=='C') return 24;
if (arg=='D') return 8;
if (arg=='A') return 20;
if (arg=='B') return 25;
return 0;
}
int cdecl printfm (char *string,...) {
static char buffer[318];
va_list ap;
va_start(ap,string);
vsprintf(buffer,string,ap);
va_end(ap);
return(printm(buffer));
}
char * pascal lstrip (char *a) { /* Remove leading spaces and tabs */
register char *p = a;
while(*p == ' ' || *p == '\t') p++;
if(*p) {
if(p > a) memmove(a,p,strlen(p) + 1);
}
else *a = 0;
return a;
}
char * pascal stripcr (char *a) { /* Remove trailing crs and lfs */
register int x;
x = strlen(a);
while(x && (a[x - 1] == '\n' || a[x - 1] == '\r')) a[--x] = 0;
return a;
}
int pascal do_args (int argc, char *argv[]) {
int register x;
if(!stricmp(argv[1],"-H")) goto Help;
if (argc<2) return 0;
for(x=2;x<argc;x++) {
if(*argv[x] != '-') {
aprintf("\n\07Invalid switch `%s' -- use '-' prefix\n",argv[x]);
continue;
}
switch ((int)toupper(argv[x][1])) {
case 'M': noslice = 1;
break;
case 'S': mode = (atoi(&argv[x][2]) == 0);
break;
case 'G': graphics = atoi(&argv[x][2]);
break;
case 'L': numlines = atoi(&argv[x][2]);
break;
case 'W': uwidth = atoi(&argv[x][2]);
break;
case 'C': commport = atoi(&argv[x][2]);
break;
case 'B': baud = (word)atol(&argv[x][2]);
break;
case 'T': timelimit = atol(&argv[x][2])*60L;
break;
case 'Z': maxlines = (word)atol(&argv[x][2]);
if(maxlines<1) maxlines = (word)65535;
break;
case 'V': usebios = atoi(&argv[x][2]);
break;
case 'H':
Help:
aprintf("\nCommand Line Arguments:\n\n"
"First argument always filename\n"
"-S<#> Secure mode (default 0, not secure)\n"
"-G<#> Graphics (default 0, none)\n"
"-L<#> Length (default 24)\n"
"-W<#> Width (default 80)\n"
"-C<#> Commport (default 0 (COM1))\n"
"-B<#> Baudrate (default 0 (local))\n"
"-M No multitasker timeslicing\n"
"-T<#> Time (default 30 mins)\n"
"-V<#> Videomethod (0 = direct, 1 = bios)\n"
"-Z<#> Maximum#lines (default 65535)\n"
"-H This Help\n");
exit(0);
default: aprintf("\nUnknown switch `%s'\n",argv[x]);
break;
}
}
return 1;
}